//
//  MainViewController.swift
//  Weibo
//
//  Created by mac on 15/12/12.
//  Copyright © 2015年 MK. All rights reserved.
//

import UIKit

class MainViewController: UITabBarController {
    
    //利用KVC (运行时)动态的 更改UITabBar(只读)的类型身份
    let mainTabBar = MKMainTabBar()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //从类型中获取字符串
        //print(tabBar.classForCoder) //UITabBar
        
        setValue(mainTabBar, forKey: "tabBar")
        
        //监听加号的点击事件
        mainTabBar.addBtn.addTarget(self, action: "addBtnDidClick", forControlEvents: .TouchUpInside)
        
        //print(tabBar.classForCoder) //MKMainTabBar
        addSubController()
    }
    
    //MARK: -私有方法只能自己类中调用 要想在其他类中调用 需加上@objc 就能通过了 -私有方法的目的为了安全
    @objc private func addBtnDidClick() {
        print("私有方法只能在自己所在的类中调用 要想在其他类中调用 必须加上@objc \(__FUNCTION__)")
    }
    
    
}

//添加子控制器 -- 为了安全性 把方法设置成 私有类private
extension MainViewController {
    
    private func addSubController() {

        setupChildController(MKHomeTableViewController(), name: "首页", imageName: "tabbar_home")
        setupChildController(MKMessageTableViewController(), name: "信息", imageName: "tabbar_message_center")
        setupChildController(MKDiscoverTableViewController(), name: "发现", imageName: "tabbar_discover")
        setupChildController(MKProfileTableViewController(), name: "我的", imageName: "tabbar_profile")
        
        
    }
    
    
    private func setupChildController(vc: UIViewController, name: String, imageName: String) {
        let nav = UINavigationController(rootViewController: vc)
        vc.title = name
        vc.tabBarItem.image = UIImage(named: imageName)
        
        addChildViewController(nav)
    }
    
}

